Android app项目开发步骤总结 | 您所在的位置:网站首页 › android studio app开发步骤 › Android app项目开发步骤总结 |
做了几个android企业应用项目后,总结了项目的基本开发步骤,希望能够交流。 一 应用规划: 确定功能。 必须的界面及界面跳转的流程。 需要的数据及数据的来源及格式。 是否需要服务端支持。 是否需要本地数据库支持。 是否需要特殊权限。 是否需要后台服务。 二 架构设计: 分层。 网络连接。 数据处理-xml、domain。 封装Activity。 三 界面设计: 主界面确定。 · 模块界面、列表、查看、编辑界面。 菜单、按钮、对话框、提示信息。 界面总体颜色。 四 数据操作和存储: 数据来源。 数据类型。 存储方式。 五 业务实现: 客户端业务解析。 六 页面跳转: 每个页面间的跳转。
菜单、按钮、事件等
关键字: android app, android develop, android summary 从2010.04启动该项目到现在完成主要功能模块,分享一下开发历程和注意事项。 开发环境: ubuntu7.10 + eclipse 3.5 + sdk 下面是开发总结: 1. 基于源码级的SDK以及SDK升级注意事项 o 熟悉其如何做资源国际化 o 熟悉其如何支持不同屏幕大小,不同density介质 o 熟悉其主要的API以及支持的最低版本和不被再支持的API o 了解其分层架构 o 升级SDK 确保该平台支持相关的cglib版本(否则要升级ubuntu) 简单容行的方式是remove ~/.android下的相关东西,remove先前的相关版本, 再升级 部分Resources(如strings中有%s的)可能需要修改才能适应新的版本 新的sdk里可能不包括老的如2.01版本 2. Emulator & Mobile o 用adb shell 操作emulator http://www.javaeye.com/topic/260042 o push / pull file in emulator Eclipse->window->Show View->File Explorer-> pull a file from the device(or push a file onto the device) o 用 real mobile连接usb来直接测试(mobile 必须设置为develop/debug mode) http://dimitar.me/how-to-connect-your-android-phone-to-ubuntu-to-do-devel opmenttestinginstallations-or-tethering/ o emulator更能用于性能测试,功能测试。而mobile更适合触摸操作测试和一些View的真 实展现测试 o 屏幕大小适应测试(枚举大,中,小),屏幕方向(枚举横,竖屏),任务切换测试 o 内存适应只能在mobile上做测试 3. 系统配置项 o SharedPreferences存储位置及如何在emulator上手动修改 找到存储位置: \data\data\your package dir\shared_prefs\your xml files 按照上面的pull/push the file o SQLite(sqlite3) 默认存储位置:\data\data\your package dir\databases\your database name 按照上面的用adb shell 操作emulator做部分database的设计和数据更新 设计版本更新和升级 o Other File I/O assert下文件读取 文件权限以及读写 o 解读AndroidManifest.xml application/process标识 最开始启动的activity activity栈的形式(指定taskAffinity&launchMode="singleTask"),而且转向一个 新的activity是用intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT)的形式 需要的权限部分 支持的最低版本 4. 基于View,Context,Manager的开发 系统View & Layout(Layout也是View) 用View本身来做其他Layout间的一个分隔 常用的View&Layout: ListView,ScrollView,RelativeLayout,TableLayout 设计常用的style/theme用到的 Drawable: http://idunnolol.com/android/drawables.html 常用的图片操作 指定颜色的渲染(setColorFilter) 剪裁 自定义View & Layout Java代码 public class TouchListView extends ListView { public TouchListView(Context context, AttributeSet attrs, int defStyle) { } } Java代码 public class Toolbar extends LinearLayout { public Toolbar(final Context context) { super(context); } public Toolbar(final Context con, AttributeSet attrs) { } } o Application,Activity,Service,View,Intent Application,Activity,Service与Context的关系 View与Context的关系 用Application来做Activity,Service,View间的全局变量(这比自己用Singleton 实现好) 用工厂模式使用Intent 做activity跳转 sendBroadcast(实时数据交换可借助Thread+ BroadcastReceiver) o WindowManager 、PackageManager 等的使用 2. 网络IO o java.net o android.net o org.apache.http 如果没有让他在AsyncTask中操作,则他的TimeOut设置必须少于5秒(为ANR 等待时间) java.net.UnknownHostException 如果发生在emulator,可参 考: http://www.javaeye.com/topic/521023 如果发生在mobile,则一般是DNS解析问题,要么允 许用户再重试操作,要么把Host的域名改为public ip address 3. 绘图部分 o 在View上绘图 只在原来View上加边框等 Java代码 1. @Override 2. protected void dispatchDraw(Canvas canva s) {} 自定义View Java代码 1. @Override 2. protected void onDraw(Canvas canvas) { o 在Bitmap上绘图 Java代码 Bitmap result = Bitmap.createBitmap(48,48, Config.ARGB_8888); 2. Canvas canvas = new Canvas(result); 3. ... 4. canvas.drawBitmap(result, rect, rect, paint); 2. 动画 o 帧动画 控制侦速率在25FPS以让其更流畅 o 渐变动画 平移 缩放 旋转 透明 3. ANR o 构建消息以及消息循环处理Handler o 使用AsyncTask 4. Exception & UncaughtException o 使用UncaughtExceptionHandler 5. 引入第三方jar以及与其他app共享数据 o 通过add user library方式添加第三方jar o Content Provider的使用 6. 性能优化/调优 o 基于View的优化 http://dl.javaeye.com/topics/download/774b3e9e-1c48-33bd-bc9d-5c27da998181 o 代码级的规范 o Method级的调优 Method Profiling(如果直接usb连接mobile,需要root权限作此项) o GC分析 使用Allocation Tracker
|
CopyRight 2018-2019 实验室设备网 版权所有 |